package com.itheima.advice;


import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

//切面类： 统计业务类中的所有方法的运行时间
@Component
@Aspect
public class TimeConsumeAdvice {
    @Pointcut("execution( * com.itheima..impl.*.query*(..))")
    public void pt() {
    }
    long beginTime; //起始时间
    long endTime;//终止时间

    //配置通知
    @Before("pt()") //前置通知，在目标方法执行前运行
    public void beginTime() {
        System.out.println("开始计时...");
        beginTime = System.currentTimeMillis();
    }

    @AfterReturning("pt()") //后置通知，在目标方法执行后运行
    public void endTime() {
        endTime = System.currentTimeMillis();
        System.out.println("执行时间：" + (endTime - beginTime) + "毫秒");
    }

}
